1. Field of the Invention
The present invention relates to a method and circuitry for compressing and decompressing digital data.
More particularly, the present invention relates to a method and circuitry for respectively compressing and decompressing digital data to and from a frequency domain representation.
One particular application, inter alia, or the present invention is in MPEG-2. While this document will focus on MPEG-2 as an application of the present invention, it should be understood that the MPEG-2 application is to be considered as an exemplification of an application of the present invention and that there is no intention of limiting the applications to which the present invention can be applied.
2. Background Art
Digital video decoders such as MPEG-2 require up to two previously decoded frames to generate the frame currently being decoded.
Each frame consists of three color components: luminance Y and two chrominance U, V. Each color component may be stored as a single frame or two fields, depending upon the implementation.
It should be noted that throughout this entire text, unless otherwise stated, one Y, U or V component pixel is represented by one byte and 1 KByte represents 1024 bytes.
The luminance component Y for each `PAL standard` frame comprises 720.times.576 pixels per frame, which therefore requires 405 KBytes of memory per luminance component Y per frame. Each of the two chrominance components U and V for each `PAL standard` frame comprises 360.times.288 pixels per frame, which therefore requires a total of 2.times.101.25 KBytes (202.5 KBytes) of memory per chrominance components U, V per frame. Therefore, each `PAL standard` frame requires 607.5 KBytes of memory in order to store the luminance Y and chrominance U, V information.
It should be understood that even though the `PAL standard` has been referenced above, the principle also applies to other standards, for example NTSC.
As stated earlier, in MPEG-2 there is a requirement for storing up to two previously decoded frames, i.e. a total of 1215 KBytes, in addition to the frame currently being decoded, i.e. 607.5 KBytes. Therefore, there is a requirement for storing up to 1822.5 KBytes of data in memory.
MPEG-2 as well as many other video/image compression methods and apparatus, for example, JPEG, H.261 and H.263, divide each of the three colour components Y, U and V into 8.times.8 blocks and then transform each block into a representative frequency domain block using an 8.times.8 two-dimensional Discrete Cosine Transform (DCT). Each frequency domain coefficient block is then quantized with the higher frequency coefficients being quantized to a greater extent than the lower frequency coefficients. This therefore results in a loss of information with many of the high frequency coefficients typically having values that become zero. The quantized coefficients are then run-length encoded using a zig-zag pattern and finally Huffman encoded. The resulting compressed block is thus not of a fixed size.
One disadvantage of the state of the art MPEG decoders is that they require two mega-bytes (2 MBytes) of memory in which to store the data. Another disadvantage of these MPEG decoders is that they have high memory bandwidth requirements. The more the memory requirements are, the more expensive, both in terms of cost, space and efficiency a system becomes.